change retrieveExportWithContentIdentifier to take a list of ContentIdentifier
authorJoey Hess <joeyh@joeyh.name>
Tue, 20 Sep 2022 17:15:31 +0000 (13:15 -0400)
committerJoey Hess <joeyh@joeyh.name>
Tue, 20 Sep 2022 17:19:42 +0000 (13:19 -0400)
commit0ffc59d34107a3ee671b90fc7c59ca09c00abbf5
treecb899fad6099c51e927505a910e70df2288fc3cc
parent3adf1f24e252f2eb16c7c4a43f83480d89c02c3d
change retrieveExportWithContentIdentifier to take a list of ContentIdentifier

This partly fixes an issue where there are duplicate files in the
special remote, and the first file gets swapped with another duplicate,
or deleted. The swap case is fixed by this, the deleted case will need
other changes.

This makes retrieveExportWithContentIdentifier take a list of allowed
ContentIdentifier, same as storeExportWithContentIdentifier,
removeExportWithContentIdentifier, and
checkPresentExportWithContentIdentifier.

Of the special remotes that support importtree, borg is a special case
and does not use content identifiers, S3 I assume can't get mixed up
like this, directory certainly has the problem, and adb also appears to
have had the problem.

Sponsored-by: Graham Spencer on Patreon
Annex/Import.hs
Remote/Adb.hs
Remote/Borg.hs
Remote/Directory.hs
Remote/Helper/ExportImport.hs
Remote/S3.hs
Types/Remote.hs